Jeg er bare en nybegynner i Swift-koding. Ideen min er ganske enkel, som er en app med to knapper. Når du klikker på, vil et tekstfelt endre teksten. I Main.StoryBoard legger jeg til et tekstfelt og to knapper. I ViewController.swift-filen. Jeg skriver slik: importer UIKit klasse ViewController: UIViewController { @IBOutlet svak var tekstfelt: UITextField! @IBOutlet svak var-knapp: UIButton! @IBOutlet svak var knapp2: UIButton! @IBAction func action1 (_ avsender: UIButton) { textfield.text = "du bare klikket på button1" } @IBAction func action2 (_ avsender: UIButton) { textfield.text = "du bare klikket på button2" } } Det skal være i orden. Det vises imidlertid en feil som viser: tråd1: signal SIGABRT i filen AppDelegate.swift linje: klasse AppDelegate: UIResponder, UIApplicationDelegate Hva er galt med koden min?
2021-01-15 08:18:14
For å løse problemet må du først rengjøre prosjektet og deretter bygge det opp igjen. For å rengjøre prosjektet, gå til MenuBar: Product -> Clean For å gjenoppbygge prosjektet, er det bare å klikke Kjør-knappen som vanlig. | Du får en SIGABRT-feil når du har et frakoblet uttak. Klikk på visningskontrollen din i storyboardet og gå til tilkoblinger i sidepanelet (pilsymbolet). Se om du har et ekstra uttak der, et duplikat eller et ekstra som ikke er koblet til. Hvis det ikke er det, har du kanskje ikke koblet uttakene dine til koden riktig. Bare husk at SIGABRT skjer når du prøver å ringe et stikkontakt (knapp, visning, tekstfelt osv.) Som ikke er der. | For meg var det ikke et utløp. Jeg løste problemet ved å gå til feilen og lese hva den sa. (Også Noob ..) Dette var feilen: Og løsningen var her: Bare bla opp i utgangen, og feilen vil bli avslørt. | En vanlig årsak til denne typen feil er at du kanskje har endret navnet på IBOutlet eller IBAction. Du kan ganske enkelt sjekke dette ved å gå til kildekoden. Klikk på main.storyboard og velg deretter open as og velg kildekode kildekoden åpnes og sjekk deretter om det er navnet på iboutlet eller ibaction du har endret, hvis det er så velg delen og slett den og deretter opprette iboutlet eller ibaction. Dette skal løse problemet ditt | I mitt tilfelle fikk jeg ikke feil bare krasj i AppDelegate, og jeg måtte fjerne merket for det neste alternativet: OS_ACTIVITY_MODE, så kunne jeg få den virkelige krasjgrunnen i .xib-filen min. Håper dette kan hjelpe deg også :) | Jeg hadde det samme problemet. Jeg lagde en knapp i storyboardet og koblet den til ViewController, og senere slettet jeg knappen. Så forbindelsen var fortsatt der, men knappen var ikke, og så fikk jeg den samme feilen som deg. Å fikse: Gå til tilkoblingsinspektøren (pilen øverst til høyre i storyboardet), og slett ubrukte tilkoblinger. | Hvis du støter på dette i Xcode 10, må du rengjøre det før du bygger det. Eller bytt til det eldre byggesystemet. File -> Workspace Settings ... -> Build System: Legacy Build System. | I mitt tilfelle var det ingen logg overhodet. Min feil var å skyve en visningskontroller i en navigasjonsstabel som allerede var en del av navigasjonsstakken. | Noen ganger skjer det også når funksjonen bare må utføres i hovedtråden, slik at du kan fikse den ved å tilordne den til hovedtråden som følger: - DispatchQueue.main.async { koden din her } | For meg var denne feilen fordi jeg hadde et forberedende segusteg som ikke gjaldt for det segmentet som ble gjort. lang historie: overstyre funksjon forberede (for segue: UIStoryboardSegue, avsender: Noen?) { la gosetup = segue.destination as! Oppdater gosetup.wherefrom = oppdateringsring } Dette ble gjort for alle segmenter når det bare var for en. Så jeg opprettet en boolean og plasserte gosetupen i den. | Dette er en veldig vanlig feil og kan skje av flere grunner. Den vanligste er når en IBOUTLET / IBACTION som er koblet til en visningskontroll i storyboardet, slettes fra den raske filen, men ikke fra storyboardet. Hvis dette ikke er tilfelle, bruk loggen i nederste verktøylinje for å finne ut hva feilen er, og diagnostiser den. Du kan bruke bruddpunkter og feilsøking for å hjelpe deg med å finne feilen. For å finne ut hvordan du løser feilen, bruk denne artikkelen som jeg fant på Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode | I mitt tilfelle brukte jeg RxSwift for å utføre søk. Jeg hadde mye brukt en delt forekomst av en bestemt klasse i onNext-metoden, noe som sannsynligvis gjorde den utilgjengelig (Mutex). Forsikre deg om at slike tilfeller bare håndteres forsiktig når det er absolutt nødvendig. I mitt tilfelle brukte jeg på forhånd et par variabler for å trygt (og sekvensielt) lagre returverdiene til metodene til den delte forekomsten, og gjenbrukte dem inne i den neste blokken. | Jeg hadde det samme problemet. I mitt tilfelle overskrev jeg bare filen GoogleService-Info.plist på den stien: Plattform \ ios \ YOUR_APP_NAME \ Resources \ Resources I mitt tilfelle var filene til stede uten data. | Svært aktivt spørsmål. Tjen 10 rykte for å svare på dette spørsmålet. Omdømmekravet hjelper deg med å beskytte dette spørsmålet mot spam og ikke-svar-aktivitet. Er ikke svaret du leter etter? Bla gjennom andre spørsmål merket ios raskt, eller still ditt eget spørsmål.